Virtual machine platforms enable simultaneous execution of multiple guest operating systems on a physical machine by running each operating system within its own virtual machine. One exemplary service that can be offered in a virtual machine is a virtual desktop session. A virtual desktop session is essentially a personal computer environment run within a virtual machine; however, the graphical user interface for the guest operating system is sent to a remote client. This architecture is similar to a remote desktop environment; however instead of having multiple users simultaneously connect to the same operating system, each user is given their own guest operating system.
Many customers are deploying virtual desktop sessions in order to reduce the total cost of ownership of desktop deployments. For example, virtual desktop sessions allow a customer, e.g., a company, to purchase computer systems that have cheap hardware and very little local software because the software is executed on the virtual desktop host, e.g., a virtual desktop server. Furthermore, since the virtual desktops are controlled from a central location, administrators have an easier time accessing and managing the servers from the central location. One of the main problems with deploying virtual desktop environments is that the virtual machines need to be pre-configured with multiple settings before they can be accessed by a remote client. Some of these configuration steps are tedious and are difficult to effectuate because guest operating systems lack a way of being remotely configured. Configuring a couple of virtual desktops manually or via customized scripts is annoying; configuring thousands of virtual machines this way is an administrative nightmare. Accordingly, techniques for configuring and controlling virtual desktops are desirable.